package com.haoniu.module.mapper;

import com.haoniu.module.domain.database.User;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * 用户 数据层
 *
 * @author admin
 * @date 2019-01-24
 */
public interface UserMapper {
    /**
     * 查询用户信息
     *
     * @param id 用户ID
     * @return 用户信息
     */
    public User selectUserById(Integer id);

    /**
     * 查询用户列表
     *
     * @param user 用户信息
     * @return 用户集合
     */
    public List<User> selectUserList(User user);

    /**
     * 新增用户
     *
     * @param user 用户信息
     * @return 结果
     */
    public int insertUser(User user);

    /**
     * 修改用户
     *
     * @param user 用户信息
     * @return 结果
     */
    public int updateUser(User user);

    /**
     * 删除用户
     *
     * @param id 用户ID
     * @return 结果
     */
    public int deleteUserById(Integer id);

    /**
     * 批量删除用户
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteUserByIds(String[] ids);


    /**
     * 启用用户
     *
     * @param id 用户ID
     * @return 结果
     */
    public int recoverUserById(Integer id);

    /**
     * 批量启用用户
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int recoverUserByIds(String[] ids);

    User selectUserByPhone(String phone);

    User selectUserByNickName(String nickName);

    /**
     * 平台总佣金
     */
    BigDecimal totalAwardMoney();

    /**
     * 免死用户抢包金额
     */
    BigDecimal totalPtUserMoney();

    /**
     * 机器人抢包总金额
     */
    BigDecimal totalRobotMoney();

    /**
     * 平台所有用户余额总和
     */
    BigDecimal totalUserMoney();

    /**
     * 用户充值总金额
     */
    BigDecimal totalUserRechargeMoney();

    /**
     * 平台充值总金额
     */
    BigDecimal totalPtRechargeMoney();

    /**
     * 提现总金额
     */
    BigDecimal totalWithdrawMoney();

    /**
     * 查询所有群主
     */
    public List<User> findAllRoomBoss();

    /**
     * 查询房间所有普通用户
     */
    public List<User> findAllOrdinary();

    /**
     * 设置成群主通过id
     */
    public int setUpRoomBoss(Integer userId);

    /**
     * 设置成普通用户通过id
     */
    public int setUpOrdinary(Integer userId);

    /**
     * 查询公告用户信息
     */
    List<User> findNoticeUser();

    /**
     * 查询所有用户信息
     */
    List<Integer> findAllUser();

    /**
     * 查询平台用户id
     */
    List<Integer> findPingTaiUser();

    /**
     * @Title:
     * @Description:   查询最近登录的若干用户
     * @param limit
     * @return
     * @throws
     * @author qiaomengnan
     * @date 2019/04/21 05:30:01
     */
    List<User> findLimitUserIds(@Param("limit")Integer limit);
}